Many times, after software is released (e.g., sold to a customer), updates are provided to either fix problems with the software or to provide enhanced features of the software. A software update refers to the creation and availability of a new version of a particular computer software product. Each time a software program is changed, the programmers and company doing the work decide on how to distribute the changes or the changed system or program to those people using it.
Managing software updates can be troublesome to many users. Many times, patches do not clearly state what problems they attempt to fix or identify the particular software being updated. In addition, many times numerous updates for the same software package are offered. A user may be confused as to which update (if any) is needed to fix particular issues.
The problems associated with updating software are magnified in a multi-system environment where numerous systems may or may not need updates. In some prior art solutions, the installation of software updates is done identically across all systems where all systems are given the same software updates.
The disadvantage of this approach is that in mission-critical environments, downtime must be minimized. In solutions that force all systems to the same software levels, an individual system might be forced to shut down applications as it installs software and patches of no value to it. In the worst case scenario, the “update” may actually be a regression from the initial state.